package edu.qd.learn.newchapter.chapter_thread.day01;

/**
 * 学习一个线程终止方式
 * <p>
 * volatile  通过volatile关键字修饰的变量，可以保证可见性，
 *
 * @author 布衣
 */
public class SecondThread extends Thread {

    /**
     * 工作线程的开关状态值
     * volatile :  多个线程可以同时访问
     */
    private volatile  boolean flag = true;

    //自加变量
    private volatile int a = 0;

    /**
     * 关闭
     */
    public void setFlag() {
        this.flag = false;
    }

    @Override
    public void run() {
        while (flag) {
            a();
        }
    }

    private void a() {
        System.out.println(Thread.currentThread().getName() + "==>" + a++);
    }

    public static void main(String[] args) throws InterruptedException {
        SecondThread thread = new SecondThread();
        thread.start();

        //指定时间以后，关闭线程
        //线程休眠1秒
        Thread.sleep(1000);
        //终止线程
        thread.setFlag();
    }

}
